DLSS: cos'è e come funziona | SmartWorld

2022-10-22 20:13:55 By : Ms. Jannat Mia

Negli ultimi anni, NVIDIA ha rivoluzionato il mondo del gaming introducendo due novità che hanno permesso un vero e proprio salto evolutivo dal punto di vista della grafica 3D:Ray Tracing e DLSS.

Mentre Ray Tracing è un termine noto anche ai non addetti ai lavori, anche grazie alla diffusione delle console PlayStation 5 e Xbox Series X, DLSS è più oscuro. La sua importanza, però, non è da meno, in quanto garantisce di giocare ad alta risoluzione e con frame elevati senza gravare eccessivamente sulla scheda video. Ovviamente c'è molto di più sotto al cofano, quindi non perdiamo altro tempo e andiamo a scoprire cos'è e come funziona il DLSS, perché il DLSS 3 è una rivoluzione, quali sono le alternative di AMD e Intel e quali giochi lo supportano. 

Ecco quindi che sono venuti in aiuto gli enormi progressi nel campo dell'intelligenza artificiale, che consentono di ricreare immagini ad alta risoluzione partendo da una risoluzione inferiore. DLSS è infatti l'acronimo per Deep Learning Super Sampling e mentre questo termine può sembrare una paranomasia, in realtà descrive in maniera molto efficace la tecnologia di NVIDIA.

Super Sampling significa infatti che si tratta di un metodo di anti-aliasing (banalmente, che serve per evitare la "scalettatura" in italiano, che notiamo nelle immagini a bassa risoluzione) molto avanzato che consente di smussare i bordi frastagliati che appaiono sulla grafica renderizzata, ma restituendo l'immagine a una risoluzione molto più elevata.

L'alias si verifica quando una linea curva viene tracciata su pixel quadrati. È un sottoprodotto di come viene renderizzata la computer grafica, poiché un pixel può visualizzare solo un colore alla volta. L'anti-aliasing tenta di appianare l'aliasing. Ci sono diversi tipi di anti-aliasing, che usano diverse tecniche. SSAA (Super Sampling anti-aliasing) è la forma più basica, in quanto prende un'immagine con una risoluzione più alta e sottocampionando i pixel per adattarli alla risoluzione nativa. Più avanti vedremo gli altri tipi, e li confronteremo con il DLSS.

Deep Learning (apprendimento profondo) significa invece che NVIDIA usa l'apprendimento automatico basato su reti neurali artificiali organizzate in diversi strati per inserire le informazioni mancanti durante il rendering. Questo è il punto importante, perché mentre altri metodi di super sampling come SSAA funzionano sovraccaricando la scheda grafica, l'elaborazione del DLSS fa fare tutto a un'intelligenza artificiale già addestrata, che quindi può operare in modo molto più snello.

In pratica, questa tecnica aumenta il frame rate eseguendo il rendering dei fotogrammi a una risoluzione inferiore rispetto a quella visualizzata, utilizzando al contempo il deep learning per eseguire l'upscaling dei fotogrammi in modo che appaiano nitidi come previsto alla risoluzione nativa. La funzione, chiamata Super Resolution, consente di far lavorare meno la GPU, in quanto deve calcolare meno pixel, ottenendo quindi frame rate più elevati anche ad alte risoluzioni e con Ray Tracing attivo (che poi è il motivo per cui è nato il DLSS).

A questo punto possiamo capire a cosa serve il DLSS: giocare ad alta risoluzione con un frame rate elevato e, perché no, usando al contempo il Ray Tracing.

La tecnologia in pochi anni è evoluta moltissimo. Se infatti con il DLSS 1.0 si potevano renderizzare i fotogrammi di un gioco a una risoluzione di 1440p e poi effettuare l'upscale per riprodurli a 4K, con il DLSS 2.0 si è potuto fare il passaggio da 1080p a 4K, aumentando così le prestazioni.

Tutto questo è possibile grazie ai Tensor Core di NVIDIA, disponibili solo nelle GPU RTX e, sebbene le GPU della serie RTX 20 ne siano dotate, le RTX 30 hanno ricevuto un importante aggiornamento con i Tensor Core di seconda generazione, che offrono prestazioni per core maggiori. Per non parlare della nuova RTX 4090 dotata di Tensor Core di 4a generazione che, come vedremo più avanti, ha reso possibile l'introduzione del DLSS 3.0.

Ancora più incredibile è il fatto che mentre le tecniche di super risoluzione portano ad artefatti, il DLSS rende invece le immagini ancora migliori, perché l'intelligenza artificiale sfrutta gli errori per migliorare la resa, consentendo al contempo di aumentare le prestazioni. Ecco quindi se i primi giochi DLSS come Final Fantasy XV fornivano modesti miglioramenti nel frame rate, passando da 5 fotogrammi al secondo (fps) a 15 fps, le versioni successive hanno consentito miglioramenti ancora maggiori. 

In giochi come Deliver us the Moon e Wolfenstein: Youngblood, NVIDIA ha introdotto un nuovo motore AI per DLSS, che migliora la qualità dell'immagine, specialmente a risoluzioni inferiori come 1080p, e consente di aumentare i frame rate in alcuni casi di oltre il 50%.

E non è finita qui, perché il nuovo DLSS 3 consente di passare, per esempio nel caso di Microsoft Flight Simulator, da 64 fps senza DLSS a 135 fps con DLSS 3.

Ora che abbiamo visto cos'è il DLSS, cerchiamo di capire brevemente come funziona. Abbiamo capito come il DLSS forzi il rendering di un gioco a una risoluzione inferiore e poi utilizziil suo algoritmo di intelligenza artificiale addestrato per dedurre come sarebbe se fosse renderizzato a una risoluzione più alta (in genere 4K).

Questo avviene utilizzando alcuni effetti di anti-aliasing, la nitidezza automatica, e persino, come abbiamo già detto, sfruttando gli artefatti visivi, in modo da dedurre i dettagli che dovrebbero essere presenti in un'immagine a super risoluzione. 

L'addestramento dell'intelligenza artificiale è, come sempre accade, una parte importantissima del processo. All'inizio NVIDIA ha utilizzato giochi specifici a risoluzioni estremamente elevate per imparare come fare. Ma era un processo lungo, in quanto doveva essere fatto gioco per gioco.

Successivamente, con il DLSS 2.0 NVIDIA ha introdotto il supercomputer Neural Graphics Framework (NGX), che ha permesso di addestrare l'intelligenza artificiale con decine di migliaia di immagini a qualità massima, ovvero supersampling 64x.

Questo significa che invece di ombreggiare ogni pixel una volta, vengono ombreggiati 64 diversi offset all'interno del pixel, quindi NVIDIA combina gli output, producendo un'immagine risultante con dettagli ideali applicando anche l'anti-aliasing. L'intelligenza artificiale ha dovuto confrontare i propri risultati con le immagini risultanti, misurare la differenza e aggiustare le impostazioni (pesi) del network con un processo chiamato retropropagazione. Dopo molte iterazioni, l'intelligenza artificiale impara a produrre risultati di qualità comparabile alle immagini 64xSS, evitando anche i problemi di sfocatura, disocclusione e trasparenza che appaiono sugli approcci classici (come il TAA, temporal anti-aliasing).

NVIDIA aveva anche sviluppato un DLSS 2X che produceva immagini indistinguibili dalle 64xSS, ma impossibile da utilizzare in tempo reale in quanto usava molte più risorse.

 Il meccanismo sopra descritto ha eliminato così la necessità di imparare dal singolo gioco ed estrapolare le sue "conoscenze" in ogni condizione. E poiché è una rete AI generale, significa anche che gli aggiornamenti al motore DLSS (inseriti nei driver) possono migliorare la qualità dei giochi già esistenti, e in pochi MB di dati!

NVIDIA aveva già usato questa tecnologia con Ansel, lo strumento per fare screenshot all'interno dei videogiochi, ma con il DLSS è applicato a ogni frame in tempo reale.

Con l'arrivo del DLSS 2.0, inoltre, è stata introdotta poi la capacità di confrontare l'ultimo frame ad alta risoluzione appena generato con il nuovo frame a bassa risoluzione, in modo da sapere come ricostruirlo. NVIDIA chiama questa tecnologia "tecniche di feedback temporale" per garantire dettagli nitidi nelle immagini del gioco e "stabilità migliorata da un fotogramma all'altro". Il feedback temporale è il processo di applicazione dei vettori di movimento, che descrivono le direzioni in cui gli oggetti nell'immagine si stanno muovendo attraverso i fotogrammi, all'immagine a risoluzione superiore, in modo che l'aspetto del fotogramma successivo possa essere stimato in anticipo.

Inoltre nel DLSS 2.0 i Tensor Core vengono usati in modo più efficiente, consentendo frame rate migliori e nel tempo le cose sono incredibilmente migliorate. Pensate che se il DLSS 2.0 effettuava il rendering di solo il 25-50% dei pixel, con il DLSS 2.1 si è passati all'11% (in modalità Ultra Performance).

Tutto questo ha consentito di aumentare le prestazioni consentendo grosso modo di mantenere la stessa qualità visiva.

Per impostare il DLSS, dovete guardare nelle impostazioni grafiche nei giochi, non c'è un'impostazione NVIDIA o Windows da attivare. Supponendo che abbiate una GPU RTX NVIDIA installata e che i driver (insieme all'applicazione GeForce Experience) e Windows siano aggiornati, l'unica cosa che dovete fare è trovare lo switch DLSS nel gioco.

La cosa importante da ricordare è di impostare il gioco alla risoluzione che state cercando di utilizzare per l'output. Banalmente, se avete intenzione di utilizzare DLSS per arrivare a 4K, la risoluzione dovrebbe essere impostata su 4K.

Inoltre con l'introduzione del DLSS 3 sono arrivate anche nuove modalità di regolazione della qualità che gli utenti possono effettuare, scegliendo tra Performance, Balanced e Quality, ciascuna focalizzando la potenza del core Tensor della GPU RTX su un aspetto diverso del DLSS.

Qui sotto potete vedere due screenshot di Death Standing. In alto si vede a 1440p senza DLSS e quindi senza anti-aliasing, mentre in basso usando la modalità "Quality" del DLSS, che riesce a mantenere la maggior parte dei dettagli nonostante l'anti-aliasing. La modalità "Performance" del DLSS, come prevedibile invece favorisce il frame rate a scapito dei dettagli.

Questo processo è proseguito con miglioramenti consequenziali, non solo grazie all'addestramento dell'algoritmo, che è proseguito sul supercomputer NGX di NVIDIA e che ha inviato i modelli AI migliorati alle schede video a ogni aggiornamento dei driver, ma anche con nuove funzioni.

Per esempio con il DLSS 2.3 lanciato a novembre dell'anno scorso, NVIDIA ha introdotto il regolatore di rendering e nitidezza e ICAT, per apprezzare in tempo reale le differenze tra i vari metodi di ottimizzazione delle immagini.

Questo processo ha però visto una brusca impennata il 20 settembre, con il lancio delle nuove RTX 40 e del DLSS 3, che ha cambiato tutto, come scopriremo nel paragrafo successivo.

All'inizio di questo articolo abbiamo parlato di come il DLSS sia una tecnica di anti-aliasing che sfrutta l'intelligenza artificiale per effettuare un upscale della risoluzione. Ma come si confronta con altre tecniche di anti-aliasing esistenti? Andiamo a vederle una per una, per arrivare al TAA. 

Abbiamo già visto l'SSAA, che produce i migliori risultati di anti-aliasing, ma è anche il più impegnativo sulla GPU, poiché essenzialmente esegue il rendering dell'immagine a una risoluzione più elevata. A causa del suo impatto sulle prestazioni, l'SSAA non è un'opzione consigliabile per la maggior parte dei giochi.

C'è poi il Multisample Anti-Aliasing, o MSAA, una forma di anti-aliasing che grava meno sulla scheda grafica rispetto all'SSAA.

Invece di campionare ogni pixel,l'MSAA entra in gioco solo dove l'aliasing potrebbe diventare un problema (sui bordi), in modo da risparmiare molte risorse di elaborazione. Sebbene una soluzione più efficiente dell'SSAA, l'MSAA grava ancora sulla GPU e ha quindi un impatto sulle prestazioni.

Il Fast Approximate Anti-Aliasing, o FXAA, è una forma di anti-aliasing post-elaborazione, quindi non interviene nel processo di rendering, ma successivamente, pulendo i bordi. L'FXAA utilizza infatti un filtro ad alto contrasto per trovare i bordi prima di campionarli e fonderli. Il problema è che non facendo una media dei colori come l'SSAA e l'MSAA, tende a sembrare più sfocato attorno ai bordi. Nonostante abbia un impatto molto minore sulla GPU rispetto all'MSAA e all'SSAA, ne risente la qualità dell'immagine.

Arriviamo infine al TAA, o Anti-Aliasing Temporale. Questa tecnica è simile all'FXAA, in quanto è una forma di anti-aliasing post-processo che campiona ogni pixel in un fotogramma.

Tuttavia, nel TAA ogni pixel viene campionato una volta per fotogramma, ma in ogni fotogramma il campione si trova in una posizione diversa all'interno del pixel. I pixel campionati nei fotogrammi precedenti vengono combinati con i pixel campionati nel fotogramma corrente per produrre un'immagine con anti-alias, senza i bordi sfocati dell'FXAA. 

Il TAA è la tecnica su cui si basano sia il DLSS che le altre tecniche di anti-aliasing moderne (FSR 2.0 di AMD), ma ha i suoi problemi, tra cui il ghosting e la trasparenza. Ma rispetto al DLSS? Già con il DLSS 1.0, i risultati erano a favore del secondo, in quanto poteva fornire una qualità molto più elevata rispetto al TAA con un certo numero di campioni di input, o prestazioni molto più veloci con un numero di campioni di input inferiore, ma con la stessa qualità del TAA (ricordiamo che con la prima versione del DLSS l'IA doveva essere addestrata per singolo gioco).

Ora la situazione si è ulteriormente evoluta a favore del DLSS.

Arriviamo ora al DLAA (Deep Learning Anti-Aliasing), che rispecchia l'approccio di NVIDIA di usare l'intelligenza artificiale per migliorare la qualità delle immagini riducendo l'aliasing. Il metodo è sempre lo stesso che abbiamo visto con il TAA e l'MSAA, in quanto anche con il DLAA vengono fusi insieme i fotogrammi, usando la stessa IA del DLSS, ma la qualità delle immagini è molto maggiore rispetto al TAA. 

Qual è la differenza rispetto al DLSS allora? Che non c'è Super Sampling, ovvero non c'è un upscaling delle immagini a risoluzione superiore, quindi non si ottengono quei vantaggi dal punto di vista delle prestazioni che il DLSS permette. Ma la qualità delle immagini è molto migliore, sia del TAA che del DLSS, quindi chi possiede una scheda grafica NVIDIA RTX sufficientemente potente potrebbe beneficiarne.

Giusto per darvi un'idea, qui sotto trovate un confronto tra lo stesso particolare di un gioco usando il DLAA (a sinistra) e il DLSS (a destra), in modalità Quality.

DLAA (sinistra), DLSS (destra). Fonte: RockPaperShotgun

Se siete curiosi di sapere l'impatto sulle prestazioni, ecco un esempio tra TAA, DLSS e DLAA con No Man's Sky usando un sistema composto da RTX 3070 e CPU i5-11600K, con impostazioni Ultra-Quality.

Al suo evento ufficiale, NVIDIA ha annunciato due schede grafiche, RTX 4080 e RTX 4090 (a proposito, non perdetevi il nostro unboxing della MSI GeForce RTX 4090 SUPRIM X 24G!), e l'attesissimo DLSS 3. 

Cosa comporta questo aggiornamento, definito da NVIDIA "una nuova era del rendering neurale" e perché è strettamente legato alle nuove GPU?

Se fino a ieri la ricostruzione dell'immagine avveniva solo con il Super Resolution che genera gran parte dei pixel a schermo, il nuovo DLSS introduce una nuova funzionalità chiamata Optical Multi Frame Generation, che consente di generare fotogrammi completamente nuovi, anziché semplici pixel (ecco perché il nome Frame Generation).

Secondo NVIDIA, il DLSS 3 sarà fino a quattro volte più veloce del DLSS 2 e sarà in grado di migliorare le prestazioni della maggior parte dei giochi, compresi i titoli che si basano principalmente sulla CPU anziché sulla GPU (ad esempio Microsoft Flight Simulator, come abbiamo visto sopra).

Ma cosa c'entrano le nuove schede video? Le RTX 40 sono dotate dei nuovi Tensor Core di 4a generazione e dell'Optical Flow Accelerator, la componente hardware integrata nell'architettura NVIDIA Ada Lovelace deputata proprio a uno dei processi dell'Optical Multi Frame Generation.

Il nuovo sistema riconosce i cambiamenti dell'immagine tra frame e frame, così da individuare e anticipare il movimento degli elementi e far sì che l'intelligenza artificiale possa modificare l'immagine successiva. Detto così, sembra molto simile al processo dei vettori di movimento del DLSS 2, ma la novità risiede nell'interazione con il Ray Tracing, quindi con la luce.

I vettori di movimento infatti non sono in grado di fornire all'intelligenza artificiale i dettagli sul movimento della luce gestita dal Ray Tracing. Per esempio, l'ombra di un'auto in movimento proiettata sulla strada genera uno "sfarfallio" se l'auto accelera, in quanto i frame generati dall'intelligenza artificiale la mostrano più avanti rispetto a dove si trova nei frame generati con il Super Resolution.

L'introduzione dell'Optical Flow però consente di identificare queste situazioni e generare effetti di luce realistici anche in scenari difficili. Le coppie di fotogrammi a super-risoluzione del gioco, insieme ai vettori di movimento del motore e all'Optical Flow, vengono quindi inserite in una rete neurale convoluzionale che analizza i dati e genera automaticamente un fotogramma aggiuntivo per ogni fotogramma renderizzato dal gioco. La combinazione dei fotogrammi generati dal DLSS con quelli a super-risoluzione consente al DLSS 3 di ricostruire sette ottavi dei pixel visualizzati con l'intelligenza artificiale, aumentando la velocità dei fotogrammi fino a quattro volte rispetto a quanto avviene senza DLSS attivato.

Essendo l'Optical Flow Accelerator presente solo nelle RTX 40, questa funzione, e quindi il Frame Generation, non potrà quindi arrivare alle schede precedenti, anche se il DLSS 3 arriverà su tutte le RTX.

Ma non è finita qui. Il DLSS 3 incorpora anche NVIDIA Reflex, che sincronizza la GPU e la CPU, garantendo una reattività ottimale e una bassa latenza del sistema (qui trovate una spiegazione di NVIDIA sul perché la latenza sia importante).

In genere, quando giochiamo, l'input parte da una periferica (mouse, tastiera o controller) e viene processato dalla CPU, che lo inserisce in una coda di render (Render Queue) a cui successivamente accede la GPU per creare l'immagine. Questo processo genera una latenza tra input e renderizzazione, a cui ora si ovvia con la nuova funzione. L'analizatore di latenza NVIDIA Refliex rileva infatti i clic provenienti dal mouse e misura il tempo impiegato dai pixel risultanti (ad esempio il flash di una pistola) per cambiare sullo schermo .

In caso di necessità, la GPU può quindi saltare la Render Queue in modo da evitare la latenza. 

Il nuovo DLSS 3 è in arrivo su Unity e Unreal Engine e, basandosi sulle integrazioni di DLSS 2, è facilmente implementabile sui titoli esistenti che supportano già DLSS 2 o NVIDIA Streamline. Sono 35 i giochi che supporteranno il nuovo DLSS, in arrivo già da ottobre. 

Ma cosa fanno i concorrenti? L'anno scorso AMD ha lanciato il suo FidelityFX Super Resolution (FSR), una tecnologia di super sampling completamente open source compatibile con potenzialmente qualsiasi scheda grafica, non solo a marchio AMD.

FSR funziona in modo molto diverso dal DLSS, in quanto pur eseguendo il rendering dei fotogrammi a una risoluzione inferiore e utilizzare un algoritmo di upscaling per far sembrare il gioco come se stesse funzionando a una risoluzione più elevata, non tiene conto dei dati vettoriali di movimento.

A marzo 2022 abbiamo iniziato a sentire parlare della versione 2.0 della tecnologia, che supporta non solo le GPU AMD, ma anche NVIDIA e Xbox, e porta notevoli miglioramenti alla qualità dell'immagine e al frame rate, grazie all'uso di dati temporali e anti-aliasing ottimizzato.

Oltre a FSR, AMD ha anche Radeon Super Resolution (RSR), una tecnica di upscaling spaziale (quindi con vettori di movimento) che fa uso dell'IA, si basa sullo stesso algoritmo dell'FSR ed è fornita tramite il software Adrenalin di AMD. RSR mira a colmare il divario nei titoli in cui FSR non è disponibile, poiché quest'ultimo deve essere implementato direttamente in giochi specifici. In sostanza, RSR dovrebbe funzionare in quasi tutti i giochi, poiché non richiede agli sviluppatori di implementarlo. Inoltre, mentre FSR è disponibile sulle GPU Nvidia e AMD più recenti, RSR è compatibile solo con le schede RDNA di AMD (RX 5000, RX 6000 e a breve anche RDNA 3 e le GPU Radeon RX serie 7000).

Ma non possiamo scordarci di Intel, che ha sviluppato la sua tecnologia di super campionamento chiamata Intel XeSS o Intel Xe Super Sampling. Questa tecnologia di upscaling delle immagini utilizza dati spaziali e temporali, ovvero sia dati di immagine che dati di movimento, e sfrutta l'intelligenza artificiale per migliorare ulteriormente la qualità dell'immagine. Proprio come il DLSS, ottiene i suoi dati attraverso una rete neurale addestrata, utilizzando l'apprendimento automatico e l'intelligenza artificiale per migliorare la qualità dell'immagine.

XeSS consentirà l'upscaling da 1080p a 4K, avrà un SDK open-source e fornirà una funzionalità multipiattaforma ai giochi su base generica. Per quanto riguarda le prestazioni, l'upscaler permetterà di impostare cinque livelli:

Il livello ultra performance avrà un fattore di upscaling di 3,0, mentre quello ultra quality sarà ridotto a 1,3.

Intel sta lavorando su due versioni di XeSS.

Il primo utilizza le unità matematiche a matrice XMX, che saranno presenti nelle sue nuove GPU Xe-HPG per occuparsi di tutta l'elaborazione dell'IA sul lato hardware. L'altra versione utilizzerà l'istruzione DP4a (vector dot product), rimuovendo così la dipendenza dall'hardware di Intel.

Ma veniamo ai giochi. Quali sono quelli che supportano il DLSS? Il numero di giochi che supportano la tecnologia DLSS di NVIDIA è molto più grande del numero di giochi che supportano il Ray Tracing.

Abbiamo detto che il DLSS è stato integrato sia negli strumenti di creazione di giochi Unreal Engine che Unity, quindi è molto più facile per gli sviluppatori iniziare ad aggiungere il supporto. Detto questo, diversi giochi che NVIDIA ha annunciato negli ultimi anni non hanno ancora ricevuto il supporto DLSS previsto, mentre quelli indicati qui sotto riceveranno a breve il supporto al DLSS.

Non ci siamo scordati del DLSS 3. Ecco i giochi che lo supporteranno.

© 2022 Mondadori Media S.p.A. - via Bianca di Savoia 12 - 20122 Milano - P.IVA 08009080964 - riproduzione riservata